Visual quality is an important aspect of the user experience in many media applications. In media compression/decompression (codec) systems, visual quality may be primarily based on the compression format used. A video encoder compresses video information so that more information can be sent over a given bandwidth or stored in a given memory space, etc. The compressed signal or data may then be decoded via a decoder that decodes or decompresses the signal or data for display to a user.
Standardized codecs, such as H.264/MPEG-4 Advanced Video Coding (AVC) standard, the High Efficiency Video Coding (HEVC) standard, and VP8(RF36386)/VP9, ensure that all standard compliant decoders will be able to decode standard compliant compressed video. Standardized codecs define a receiver model called hypothetical reference decoder (HRD). To be standard compliant, an encoder must create a bitstream that is decodable by the HRD. The HRD specifies one or more buffer, such as a coded picture buffer (CPB), and decoded picture buffer (DPB). The HRD may employ a leaky bucket model parameterized by transmission bitrate, buffer size, and initial decoder buffer fullness. Buffering is employed at the encoder and decoder side to accommodate the bitrate variation of the compressed video when transmitting video data at a constant or nearly constant bitrate. Bitrate variation is a result of the number of bits needed to compress a given video frame varying, for example as a function of frame type (e.g., intra- or inter-coded).
Transform coefficients obtained via an encoding technique may be quantized as a function of the quantization parameter (QP). A larger QP value results in greater compression at the cost of lower quality, while lower QP values achieve greater visual quality at the cost of a reduced compression rate. QP may be modulated for a given frame to control the number of generated bits (i.e., frame size) as means of rate control to meet the HRD buffer constraint. Typically, a rate control module responsible for determining a QP value for a given frame needs the number of bits used by the previous encoded frame to control the encoding process of a current frame such that a target bitrate is met and the buffer constraint satisfied.
With the complexity of video codecs continuing to increase, parallel processing is becoming more important in video encoding applications. However, with parallel encoding architectures the number of bits used by the prior encoded frame may not be available to the rate control module responsible for determining a QP value for the subsequently encoded frame. As such, parallel video encoder rate control techniques and systems capable of performing such techniques are advantageous in the market place.